package com.ynet.middleground.user.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;


/**
 * 企业基础信息
 */
@Data
@ApiModel(value = "企业基础信息", description = "企业基础信息")
public class EnterpriseBasicInfoHistoryDto implements Serializable {
    private static final long serialVersionUID = -912439624818862645L;
    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id", notes = "用户id")
    private Integer userId;

    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱", notes = "邮箱")
    private String email;

    /**
     * 证书类型
     */
    @ApiModelProperty(value = "证书类型", notes = "证书类型")
    private String certificateType;

    /**
     * 法定代表人姓名
     */
    @ApiModelProperty(value = "法定代表人姓名", notes = "法定代表人姓名")
    private String legalRepresentativeName;

    /**
     * 法定代表人证件类型
     */
    @ApiModelProperty(value = "法定代表人证件类型", notes = "法定代表人证件类型")
    private String lrnCertificateType;

    /**
     * 法定代表人证件号码
     */
    @ApiModelProperty(value = "法定代表人证件号码", notes = "法定代表人证件号码")
    private String lrnCertificateNo;

    /**
     * 管理员姓名
     */
    @ApiModelProperty(value = "管理员姓名", notes = "管理员姓名")
    private String adminName;

    /**
     * 管理员手机号码
     */
    @ApiModelProperty(value = "管理员手机号码", notes = "管理员手机号码")
    private String adminTelephone;

    /**
     * 证件类型
     */
    @ApiModelProperty(value = "证件类型", notes = "证件类型")
    private String adminCertificateType;

    /**
     * 证件号码
     */
    @ApiModelProperty(value = "证件号码", notes = "证件号码")
    private String adminCertificateNo;

    /**
     * 管理员邮箱
     */
    @ApiModelProperty(value = "管理员邮箱", notes = "管理员邮箱")
    private String adminEmail;

    /**
     * 营业执照(影像资料)
     */
    @ApiModelProperty(value = "营业执照", notes = "营业执照")
    private String businessLicenseUrl;

    /**
     * 法定代表人代表证照(影像资料)
     */
    @ApiModelProperty(value = "法定代表人代表证照", notes = "法定代表人代表证照")
    private String lrnLicenseUrl;

    /**
     * 法定代表人授权委托书（影像资料）URL
     */
    @ApiModelProperty(value = "法定代表人授权委托书（影像资料）URL", notes = "法定代表人授权委托书（影像资料）URL")
    private String authorizationBookUrl;

    /**
     * 企业注册地址
     */
    @ApiModelProperty(value = "企业注册地址", notes = "企业注册地址")
    private String entRegeditAddress;

    /**
     * 经营地址
     */
    @ApiModelProperty(value = "经营地址", notes = "经营地址")
    private String businessAddress;

    /**
     * 银行账号
     */
    @ApiModelProperty(value = "银行账号", notes = "银行账号")
    private String bankAccount;

    /**
     * 账户名称
     */
    @ApiModelProperty(value = "账户名称", notes = "账户名称")
    private String bankAccountName;

    /**
     * 开户行
     */
    @ApiModelProperty(value = "开户行,对照中台提供字典", notes = "开户行,对照中台提供字典")
    private String openBank;

    /**
     * 开户省
     */
    @ApiModelProperty(value = "开户省,对照中台提供字典", notes = "开户省,对照中台提供字典")
    private String openAccountProvince;

    /**
     * 开户市
     */
    @ApiModelProperty(value = "开户市,对照中台提供字典", notes = "开户市,对照中台提供字典")
    private String openingAccountCity;

    /**
     * 开户网点
     */
    @ApiModelProperty(value = "开户网点", notes = "开户网点")
    private String openBranch;

    /**
     * 固定电话
     */
    @ApiModelProperty(value = "固定电话", notes = "固定电话")
    private String fixedTelephone;

    /**
     * 开户许可证(影像资料)
     */
    @ApiModelProperty(value = "开户许可证", notes = "开户许可证")
    private String accountOpenPermitUrl;

    /**
     * 银行账户信息证明(影像资料)
     */
    @ApiModelProperty(value = "银行账户信息证明", notes = "银行账户信息证明")
    private String bankAccountInfoCertUrl;

    /**
     * 企业开票信息(影像资料)
     */
    @ApiModelProperty(value = "企业开票信息", notes = "企业开票信息")
    private String enterpriseBillingInformationUrl;

    /**
     * 企业类型
     */
    @ApiModelProperty(value = "企业类型", notes = "企业类型")
    private String enterpriseType;

    /**
     * 企业状况
     */
    @ApiModelProperty(value = "企业状况", notes = "企业状况")
    private String businessConditions;

    /**
     * 主营业务
     */
    @ApiModelProperty(value = "主营业务", notes = "主营业务")
    private String mainBusiness;

    /**
     * 国标行业分类
     */
    @ApiModelProperty(value = "国标行业分类", notes = "国标行业分类")
    private String internationalIndustryClass;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", notes = "创建时间")
    private LocalDateTime gmtCreate;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人", notes = "创建人")
    private Integer createBy;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间", notes = "修改时间")
    private LocalDateTime gmtModified;

    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人", notes = "修改人")
    private Integer modifiedBy;

    /**
     * 客户层授信总额度
     */
    @ApiModelProperty(value = "客户层授信总额度", notes = "客户层授信总额度")
    private String userCreditAmount;

    /**
     * 生成日期
     */
    @ApiModelProperty(value = "生成日期", notes = "生成日期")
    private LocalDateTime creationDate;
    
    /**
     * 金蝶客户号
     */
    @ApiModelProperty(value = "金蝶客户号", notes = "金蝶客户号")
    private String kingdeeUserCode;
    
    /**
     * 金蝶客户名称
     */
    @ApiModelProperty(value = "金蝶客户名称", notes = "金蝶客户名称")
    private String kingdeeUserName;

    /**
     * 冷链客户信息
     */
    @ApiModelProperty(value = "冷链客户信息", notes = "冷链客户信息")
    private List<ColdchainHistoryDTO> coldChainList;
    
    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话", notes = "联系电话")
    private String telephone;

    /**
     * 用户名称
     */
    @ApiModelProperty(value = "用户名称", notes = "用户名称")
    private String userName;

    /**
     * 证件种类,00-统一社会信用代码,01-组织机构代码证,营业执照,税务登记证,04-身份证
     */
    @ApiModelProperty(value = "证件种类,00-统一社会信用代码,01-组织机构代码证,营业执照,税务登记证,04-身份证", notes = "证件种类,00-统一社会信用代码,01-组织机构代码证,营业执照,税务登记证,04-身份证")
    private String papersType;

    /**
     * 证件编号,当证件种类为00时该字段为统一社会信用代码,01时该字段为组织机构代码,04时为身份证
     */
    @ApiModelProperty(value = "证件编号,当证件种类为00时该字段为统一社会信用代码,01时该字段为组织机构代码,04时为身份证", notes = "证件编号,当证件种类为00时该字段为统一社会信用代码,01时该字段为组织机构代码,04时为身份证")
    private String papersNo;
    
    /**
     * 税务登记证编号
     */
    @ApiModelProperty(value = "税务登记证编号", notes = "税务登记证编号", dataType = "String")
    private String taxRegistrationNo;
    
    /**
     * 营业执照编号
     */
    @ApiModelProperty(value = "营业执照编号", notes = "营业执照编号", dataType = "String")
    private String bussinessLicenseNo;
    

    /**
     * 开户行行号
     */
    @ApiModelProperty(value = "开户行行号", notes = "开户行行号")
    private String openBankNo;

    /**
     * 经营地址(或者是家庭住址)
     */
    @ApiModelProperty(value = "邮寄地址", notes = "邮寄地址")
    private String userAddress;
    
    /**
     * 渠道,
     */
    @ApiModelProperty(value = "渠道,", notes = "渠道,")
    private String channel;

    /**
     * 邀请码(自己的)
     */
    @ApiModelProperty(value = "邀请码(自己的)", notes = "邀请码(自己的)")
    private String inviteCode;
    
    /**
     * 证件有效期起,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期
     */
    @ApiModelProperty(value = "证件有效期起,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期", notes = "证件有效期起,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期")
    private Date cerSdate;

    /**
     * 证件有效期止,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期
     */
    @ApiModelProperty(value = "证件有效期止,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期", notes = "证件有效期止,当证件种类为00时该字段为统一社会信用代码有效期,01时该字段为组织机构代码有效期")
    private Date cerEdate;
    
    /**
     * 营业执照有效期起
     */
    @ApiModelProperty(value = "营业执照有效期起", notes = "营业执照有效期起", dataType = "java.time.LocalDate")
    private Date bussinessLicenseNoSdate;

    /**
     * 营业执照有效期止
     */
    @ApiModelProperty(value = "营业执照有效期止", notes = "营业执照有效期止", dataType = "java.time.LocalDate")
    private Date bussinessLicenseNoEdate;
    
    /**
     * 税务登记证有效期起
     */
    @ApiModelProperty(value = "税务登记证有效期起", notes = "税务登记证有效期起", dataType = "java.time.LocalDate")
    private Date taxRegistrationNoSdate;

    /**
     * 税务登记证有效期止
     */
    @ApiModelProperty(value = "税务登记证有效期止", notes = "税务登记证有效期止", dataType = "java.time.LocalDate")
    private Date taxRegistrationNoEdate;
    

    /**
     * 用户锁定状态，存放的是一个集合,渠道集合
     */
    @ApiModelProperty(value = "用户锁定状态，存放的是一个集合,渠道集合", notes = "用户锁定状态，存放的是一个集合,渠道集合")
    private String channelUnlockState;
    
    /**
     * 客户经理编号
     */
    @ApiModelProperty(value = "客户经理编号", notes = "客户经理编号")
    private Integer customerManagerId;

    /**
     * 渠道授权,存放的是一个集合,渠道集合
     */
    @ApiModelProperty(value = "渠道授权,存放的是一个集合,渠道集合", notes = "渠道授权,存放的是一个集合,渠道集合")
    private String authorizedChannels;

    /**
     * 删除渠道用户,存放的是一个集合,渠道集合
     */
    @ApiModelProperty(value = "删除渠道用户,存放的是一个集合,渠道集合", notes = "删除渠道用户,存放的是一个集合,渠道集合")
    private String deleteChannelUsers;
    
    /**
     * 锁定标志0:正常1:锁定
     */
    @ApiModelProperty(value = "锁定标志0:正常1:锁定，这是企业的锁定标志", notes = "锁定标志0:正常1:锁定，这是企业的锁定标志")
    private String isUnlock;
    
    /**
     * 上级企业id
     */
    @ApiModelProperty(value = "上级企业id", notes = "上级企业id")
    private Integer parentId;
    
    /**
     * 职工人数
     */
    @ApiModelProperty(value = "企业从业人员人数", notes = "企业从业人员人数")
    private String employeeAmount;

    /**
     * 上年度营业额
     */
    @ApiModelProperty(value = "上年营业收入（万元）", notes = "上年营业收入（万元）")
    private String lastYearTurnover;
    
    /**
     * 附件
     */
    @ApiModelProperty(value = "企业附件信息", notes = "企业附件信息")
    private List<EnterpriseEnclosureHistoryDTO> enclosureLists;

    //所属业态公司id
    @ApiModelProperty(value = "所属业态公司id", notes = "所属业态公司id")
    private String authorizedFormats;

    //锁定业态公司id
    @ApiModelProperty(value = "锁定业态公司id", notes = "锁定业态公司id")
    private Integer formatUnlockState;
}
